<?php


namespace App\Services;

use Illuminate\Support\Facades\Redis;

/**
 * Redis服务
*/
class RedisService
{

    /** 获取redis key 对应的值, 如果没有数据,执行$callback必包函数返回的结果返回,并且保存到key里面
     * @param $key
     * @param \Closure $callback
     * @param int $seconds
     * @return String |null
     */
    public function get($key,$callback=null,$seconds=10){
        $val = Redis::get($key);
        if (!$val && gettype($callback) =='object'){
            $val = $callback();
            //缓存
            Redis::setex($key,$seconds,$val);
            return $val;
        }
        return $val;
    }

    public function set($key,$value,$seconds=10){
        Redis::setex($key,$seconds,$value);
    }

    public function del($key){
         Redis::del($key);
    }

}
